const express = require('express')
const app=new express()
const bp=require('body-parser')
//静态资源目录托管
app.use(express.static('./static'))
//托管多个
app.use(express.static('./assets'))
//挂载路径访问前缀
//全局中间件的注册 app.use()
app.use("/user",express.static('./js'))
//创建路由模块 express.Router()
//定义中间件函数
const mw=function(req,rep,next) {
	console.log("这是一个中间件函数")
	next()
}
app.use(mw)
//定义全局中间件 一旦响应 结束中间件吗
//中间件的作用 多个中间件共享同一份req 和 res 局部生效的中间件 使用多个局部中间件
//中间件的5个使用注意
//跨域设置(所有域名)
app.all('*', function (req, res, next) {
    //其中*表示允许所有域可跨
    res.header('Access-Control-Allow-Origin', '*');
    res.header('Access-Control-Allow-Headers', 'Content-Type');
    res.header('Access-Control-Allow-Methods', '*');
    res.header('Content-Type', 'application/json;charset=utf-8');
    next();
});
// app.use(express.json())
// app.use(express.urlencoded({extended:false}))
app.use(bp.urlencoded({extended:false}))
//中间件进行预处理
const mw1=function(req,rep,next) {
	console.log("这是第二个中间件函数")
	next()
}
const mw2=function(req,rep,next) {
	console.log("这是第三个中间件函数")
	next()
}
app.get('/add',mw1,mw2,function(req,rep) {
	console.log(req.method)
	rep.send({
		data:req.headers,
		query:req.query,
		url:req.url,
		body:req.body
	})
})
//路由访问前缀
app.post('/add',function(req,rep) {
	// console.log(req.body)
	// console.log(req.query)
	console.log(req.method)
	rep.json({
		data:req.headers,
		query:req.query,
		url:req.url,
		body:req.body
	})
})

app.use('/hello',function(req,res,next) {
	console.log("第一层");
	res.send('100')
	next()
})
app.use('/hello',function(req,res,next) {
	console.log("第二层");
})
app.listen(8081,function() {
	console.log('127.0.0.1')
})